﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;

namespace SIM.Geo.DA
{
    public class DATipoCancha : Base
    {
        /// <summary>
        /// Devuelve la lista de categoria de labores
        /// </summary>
        /// <returns></returns>
        public List<TipoCancha> ListarTipoCancha()
        {
            return this.Context.TipoCancha.ToList();
        }

        /// <summary>
        /// Método para insertar un categoria de labor
        /// </summary>
        /// <param name="TipoCancha"></param>
        /// <returns></returns>
        public int InsertarTipoCancha(TipoCancha tipoCancha)
        {
            this.Context.TipoCancha.AddObject(tipoCancha);
            this.Context.SaveChanges();
            return tipoCancha.CodigoTipoCancha;
        }
        /// <summary>
        /// Método para modificar un categoria de labor
        /// </summary>
        /// <param name="TipoCancha"></param>
        public void ModificarTipoCancha(TipoCancha tipoCancha)
        {
            this.Context.TipoCancha.Attach(tipoCancha);
            this.Context.ObjectStateManager.ChangeObjectState(tipoCancha, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar categoria de labor
        /// </summary>
        /// <param name="TipoCancha"></param>
        public void EliminarTipoCancha(TipoCancha tipoCancha)
        {
            this.Context.TipoCancha.DeleteObject(tipoCancha);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre categoria de labor
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<TipoCancha> BuscarTipoCancha(string nombre)
        {
            return this.Context.TipoCancha.Where(x => x.Descripcion.StartsWith(nombre)).ToList();
        }
        /// <summary>
        /// Método que devuelve categoria de labor por codigo
        /// </summary>
        /// <param name="codigoTipoCancha"></param>
        /// <returns></returns>
        public TipoCancha ObtenerTipoCancha(int codigoTipoCancha)
        {
            return this.Context.TipoCancha.Where(x => x.CodigoTipoCancha.Equals(codigoTipoCancha)).FirstOrDefault();
        }
        /// <summary>
        /// Método listar tipo de cancha por nombre
        /// </summary>
        /// <param name="nombreTipoCancha"></param>
        /// <returns></returns>
        public List<TipoCancha> ListarTipoCanchaPorNombre(string nombreTipoCancha)
        {
            return this.Context.TipoCancha.Where(x => x.Descripcion.ToUpper().Equals(nombreTipoCancha.ToUpper())).ToList();
        }
    }
}
